home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / a_utils / yacc / flexyacc / aflex.lha / aflex / src / alsys / aflex.a next >
Text File  |  1993-05-31  |  5KB  |  127 lines

  1. ---------------------------------
  2. -- aflex.a
  3. ---------------------------------
  4.  
  5. -- TITLE aflex - main program
  6. --
  7. -- AUTHOR: John Self (UCI)
  8. -- DESCRIPTION main subprogram of aflex, calls the major routines in order
  9. -- $Header: /co/ua/self/arcadia/aflex/ada/src/RCS/aflex.a,v 1.11 90/10/15 20:00:40 self Exp Locker: self $ 
  10. --*************************************************************************** 
  11. --                              aflex
  12. --                          version 1.3a
  13. --***************************************************************************
  14. --
  15. --                            Arcadia Project
  16. --               Department of Information and Computer Science
  17. --                        University of California
  18. --                        Irvine, California 92717
  19. --
  20. --    Send requests for aflex information to alex-info@ics.uci.edu
  21. --
  22. --    Send bug reports for aflex to alex-bugs@ics.uci.edu
  23. --
  24. -- Copyright (c) 1990 Regents of the University of California.
  25. -- All rights reserved.
  26. --
  27. -- This software was developed by John Self of the Arcadia project
  28. -- at the University of California, Irvine.
  29. --
  30. -- Redistribution and use in source and binary forms are permitted
  31. -- provided that the above copyright notice and this paragraph are
  32. -- duplicated in all such forms and that any documentation,
  33. -- advertising materials, and other materials related to such
  34. -- distribution and use acknowledge that the software was developed
  35. -- by the University of California, Irvine.  The name of the
  36. -- University may not be used to endorse or promote products derived
  37. -- from this software without specific prior written permission.
  38. -- THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
  39. -- IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
  40. -- WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  41. --
  42. --    This program is based on the flex program written by Vern Paxson.
  43. --
  44. --    The following is the copyright notice from flex, from which aflex is
  45. --    derived.
  46. --    Copyright (c) 1989 The Regents of the University of California.
  47. --    All rights reserved.
  48. --
  49. --    This code is derived from software contributed to Berkeley by
  50. --    Vern Paxson.
  51. --
  52. --      The United States Government has rights in this work pursuant to
  53. --    contract no. DE-AC03-76SF00098 between the United States Department of
  54. --    Energy and the University of California.
  55. --
  56. --    Redistribution and use in source and binary forms are permitted
  57. --    provided that the above copyright notice and this paragraph are
  58. --    duplicated in all such forms and that any documentation,
  59. --    advertising materials, and other materials related to such
  60. --    distribution and use acknowledge that the software was developed
  61. --    by the University of California, Berkeley.  The name of the
  62. --    University may not be used to endorse or promote products derived
  63. --    from this software without specific prior written permission.
  64. --    THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
  65. --    IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
  66. --    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  67. --
  68. --***************************************************************************
  69.  
  70. -- History
  71. -- 14-Jun-1991        Rolf EBERT    
  72. --    changed to a parameterless procedure; in the error case the exit
  73. --    status is set by the compiler dependent procedure (Alsys)
  74. --    'Set_Exit_Status'.
  75.  
  76. with MAIN_BODY, DFA, GEN, MISC_DEFS, TEXT_IO, MISC; 
  77. with TSTRING, TEMPLATE_MANAGER, EXTERNAL_FILE_MANAGER; use MISC_DEFS, TEXT_IO, 
  78.   TSTRING, EXTERNAL_FILE_MANAGER; 
  79.  
  80. with System_Environment;
  81. use  System_Environment;
  82.  
  83. --function AFLEX return INTEGER is 
  84. procedure Aflex is
  85.     copyright : constant string :=
  86.     "@(#) Copyright (c) 1990 Regents of the University of California.";
  87.         copyright2 : constant string :=
  88.     "All rights reserved.";
  89. begin
  90.   MAIN_BODY.AFLEXINIT; 
  91.  
  92.   MAIN_BODY.READIN; 
  93.  
  94.   if (SYNTAXERROR) then 
  95.     MAIN_BODY.AFLEXEND(1); 
  96.   end if; 
  97.  
  98.   if (PERFORMANCE_REPORT) then 
  99.     if (INTERACTIVE) then 
  100.       TEXT_IO.PUT_LINE(STANDARD_ERROR, 
  101.         "-I (interactive) entails a minor performance penalty"); 
  102.     end if; 
  103.  
  104.  
  105.   end if; 
  106.  
  107.   if (VARIABLE_TRAILING_CONTEXT_RULES) then 
  108.     MISC.AFLEXERROR("can't handle variable trailing context rules"); 
  109.   end if; 
  110.  
  111.   -- convert the ndfa to a dfa
  112.   DFA.NTOD; 
  113.  
  114.   -- generate the Ada state transition tables from the DFA
  115.   GEN.MAKE_TABLES; 
  116.  
  117.   TEMPLATE_MANAGER.GENERATE_IO_FILE; 
  118.   TEMPLATE_MANAGER.GENERATE_DFA_FILE; 
  119.   MAIN_BODY.AFLEXEND(0); 
  120. --  return 0; 
  121. exception
  122.   when MAIN_BODY.AFLEX_TERMINATE => 
  123. --    return MAIN_BODY.TERMINATION_STATUS; 
  124.       Set_Exit_Status(Exit_Status(Main_Body.Termination_Status));
  125. end AFLEX; 
  126.  
  127.